package com.dell.chen.service.Impl;

import com.dell.chen.dao.FlowerDao;
import com.dell.chen.dao.impl.FlowerDaoImpl;
import com.dell.chen.pojo.Flowers;
import com.dell.chen.pojo.Page;
import com.dell.chen.service.FlowerService;

import java.util.List;

/**
 * @author ：ChenwithIU
 * @date ：Created in 2020/11/30 14:39
 */
public class FlowerServiceImpl implements FlowerService {

    private FlowerDao flowerDao = new FlowerDaoImpl();

    @Override
    public void addFlower(Flowers flowers) {
        flowerDao.addFlowers(flowers);
    }

    @Override
    public void deleteFlowerById(Integer id) {
        flowerDao.deleteById(id);
    }

    @Override
    public void updateFlower(Flowers flowers) {
        flowerDao.update(flowers);
    }

    @Override
    public Flowers queryFlowerById(Integer id) {
        return flowerDao.queryById(id);
    }

    @Override
    public List<Flowers> queryFlowers() {
        return flowerDao.queryFlowers();
    }

    @Override
    public Page<Flowers> page(int pageNo, int pageSize) {
        Page<Flowers> page = new Page<>();

        // 设置每页显示的数量
        page.setPageSize(pageSize);
        // 求总记录数
        Integer pageTotalCount = flowerDao.queryForPageTotalCount();
        // 设置总记录数
        page.setPageTotalCount(pageTotalCount);
        // 求总页码
        Integer pageTotal = pageTotalCount / pageSize;
        if (pageTotalCount % pageSize > 0) {
            pageTotal+=1;
        }
        // 设置总页码
        page.setPageTotal(pageTotal);

        // 设置当前页码
        page.setPageNo(pageNo);

        // 求当前页数据的开始索引
        int begin = (page.getPageNo() - 1) * pageSize;
        // 求当前页数据
        List<Flowers> items = flowerDao.queryForPageItems(begin,pageSize);
        // 设置当前页数据
        page.setItems(items);

        return page;
    }

    @Override
    public Page<Flowers> pageByPrice(int pageNo, int pageSize, int min, int max) {
        Page<Flowers> page = new Page<>();

        // 设置每页显示的数量
        page.setPageSize(pageSize);
        // 求总记录数
        Integer pageTotalCount = flowerDao.queryForPageTotalCountByPrice(min,max);
        // 设置总记录数
        page.setPageTotalCount(pageTotalCount);
        // 求总页码
        Integer pageTotal = pageTotalCount / pageSize;
        if (pageTotalCount % pageSize > 0) {
            pageTotal+=1;
        }
        // 设置总页码
        page.setPageTotal(pageTotal);

        // 设置当前页码
        page.setPageNo(pageNo);

        // 求当前页数据的开始索引
        int begin = (page.getPageNo() - 1) * pageSize;
        // 求当前页数据
        List<Flowers> items = flowerDao.queryForPageItemsByPrice(begin,pageSize,min,max);
        // 设置当前页数据
        page.setItems(items);

        return page;
    }
}
